// 正则校验相关

const passwdRegExps = [
  new RegExp("[0-9]+"), // 查找数字
  new RegExp("[a-z]+"), // 查找小写字母
  new RegExp("[A-Z]+"), // 查找大写字母
  new RegExp("[^0-9a-zA-Z]+") // 查找特殊字符
];

/**
 * 匹配密码 至少包含数字、小写字母、大写字母、特殊字符中的几种
 * @param {string} value 待校验的密码字符串
 * @param {number} count 密码强度要求，默认为3 最大为4
 * @returns {boolean}
 */
export const matchPasswd = (value: string, count = 3): boolean => {
  if (count > 4) count = 4;
  let i = 0;
  passwdRegExps.forEach(regExp => {
    if (regExp.test(value)) {
      i += 1;
    }
  });
  return i >= count;
};
